/*******************************************************************************
 * Classe BombeGravite : classe créant la bombe de gravité, bombe qui modifie
 *                       cette derniere de façon aléatoire
 ******************************************************************************/
package Armes;

import prjintwg.ProjectileSimple;
import java.awt.*;
import prjintwg.Jeu;
import ElementsDeJeu.MessageSpecial;
import prjintwg.PnlJeu;

/**
 *
 * @author W&G
 */
public class BombeGravite extends ProjectileSimple {

    private Color couleur = new Color(100, 100, 100);//Couleur de la bombe
    private boolean explose = false;// variable disant si la bombe est explosée ou non

    /**
     * Constructeur de la bombe gravité
     * @param positionX position en x de départ
     * @param positionY position en y de départ
     * @param pnlJeu panneau contenant la bombe
     */
    public BombeGravite(int positionX, int positionY, PnlJeu pnlJeu) {
        super(positionX, positionY, pnlJeu);
        rayonExplosion = 5;
        this.puissance = 0.2;
    }
    /**
     * Ne montre pas le message spécial si ne touche aucun personnage
     */
    @Override
    protected void personneTouche(){
                            try {
                        mS = new MessageSpecial("Fail.PNG");
                        mS.setVisible(false);
                    } catch (Exception e) {
                        System.out.println("Erreur de chargement du message spécial");
                        System.out.println(e);
                    }
    }

/**
 * Retourne une valeur prédifinie aléatoire (-15,-10,10 ou 15)
 * @return Retourne une valeur prédifinie aléatoire (-15,-10,10 ou 15)
 */
    private int random() {
        int rand = 0;
        switch ((int) (Math.random() * 4 % 4)) {
            case 0:
                rand = -15;
                break;
            case 1:
                rand = -10;
                break;
            case 2:
                rand = 10;
                break;
            case 3:
                rand = 15;
                break;
        }
        return rand;
    }
/**
 * change la gravité dans la zone ou tombe la bombe
 */
    @Override
    public void actionSpeciale2() {
        explose = true;
        repaint();
        Jeu.setTabGravite(dernierePosX - 100, dernierePosX + 100, random());
    }

    @Override
    public void paintComponent(Graphics g) {//Dessine la bombe
        g.setColor(couleur);
        g.fillOval(positionX, TAILLEFENETRE - this.positionY, 10, 10);
        if (explose == true) {
            g.setColor(Color.yellow);
            g.fillOval(30, 30, 100, 100);
            System.out.println("DNJI");
        }
    }
}
